package com.itheima.demo06;

public class Foodie extends Thread{
    private Desk desk;

    public Foodie(Desk desk) {
        this.desk = desk;
    }

    @Override
    public void run() {
        //添加死循环
        while (true) {
            //加上锁，锁唯一，在公用的Desk类中创建公共锁
            synchronized (desk.getLock()) {
                //判断汉堡包是否已经吃完
                if (desk.getCount() == 0) {
                    break;
                }else {
                    //未吃够10个
                    //判断桌子上有没有汉堡包
                    if (desk.isFlag()){
                        //有，输出
                        System.out.println("吃货正在吃汉堡包！");
                        //修改桌子状态为无
                        desk.setFlag(false);
                        //修改今天还能吃的汉堡包数量
                        desk.setCount(desk.getCount() - 1);
                        //唤醒公共锁上所有等待的线程
                        desk.getLock().notifyAll();
                    }else {
                        //无，在公共锁上等待
                        try {
                            desk.getLock().wait();
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
        }
    }
}
